// pages/document/index.js
const app = getApp()
import __config from '../../config/env'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    deviceDocument: {},
    basePath: __config.basePath,
    percentValue: 50,
    isOpenFile: false,
    progressValue: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const q = decodeURIComponent(options.q) // 获取到二维码原始链接内容
    if (q != null && typeof (q) != 'undefined') {
      let modelCode = this.GetQueryString(q, "modelCode");
      if (modelCode) {
        app.initPage()
          .then(res => {
            let wxUser = app.globalData.wxUser
            this.setData({
              wxUser: wxUser
            })
            app.api.getDeviceModel(modelCode).then(res => {
              this.setData({
                deviceDocument: res.data
              })
            })
          })
      }
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
      isOpenFile: false
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  GetQueryString: function (options, name) {
    var reg = new RegExp("(^&|)" + name + "=([^&]*)(&|$)", "i");
    var r = options.substr(1).match(reg);
    if (r != null) return (r[2]);
    return null;
  },
  openFile(e) {
    let index = e.currentTarget.dataset.index
    let file = this.data.deviceDocument.fileList[index]
    if (file) {
      this.setData({
        isOpenFile: true,
        progressValue: 0,
      })
      const _this  = this
      let downloadTask = wx.downloadFile({
        url: file.fileUrl,
        success: function (res) {
          var filePath = res.tempFilePath;//本地文件路径    
          wx.openDocument({
            filePath: filePath,   // 装载对应文件的路径
            // fileType: type,   // 指定打开的文件类型 我写的固定类型 也可根据文件的后缀动态设置
            showMenu: true,       // 右上角的菜单转发分享操作
            success: function (res) {
              console.log('打开成功');
            },
            fail: function (err) {
              console.log('打开失败：', err);
            },
            complete: function(){
              _this.setData({
                isOpenFile: false,
                progressValue: 0
              })
            }
          })
        }
      })
      downloadTask.onProgressUpdate((res) => {
        console.log('下载进度', res.progress)
        this.setData({
          progressValue: res.progress
        })
      })
    }
  }
})